﻿Imports System.Data
Imports System.Data.SqlClient
Partial Class Sistema_ModuloSalud
    Inherits System.Web.UI.Page
    Dim editar As Boolean
    Dim Edad As Integer
    Dim visit As String
    Dim sexo As Integer
    Dim mensaje As String
    Dim Exepcion As String
    Dim NumeroError As Integer
    Public iderespuesta As Integer
    Dim actualizar As Integer
    Public novalida As Boolean
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Page.IsPostBack = False Then
            If String.IsNullOrEmpty(Request.QueryString.Item("idPersona")) = False Then
                hdIdPersona.Value = Request.QueryString.Item("idPersona")
                hdIdvisita.Value = Request.QueryString.Item("Idvisita")
                hdIdhogar.Value = Request.QueryString.Item("Idhogar")
                EncabezadoModulo1.idPersona = Request.QueryString.Item("idPersona")
                EncabezadoModulo1.idVisita = Request.QueryString.Item("Idvisita")
            End If
            llenarCombos()
            traeredad()
            traersexo()

            Using bdvisita As New BdHogaresDataContext
                Dim aaa = From i In bdvisita.Web_Visitas
                          Where i.idvisita = hdIdvisita.Value
                          Select i.Visita
                visit = aaa.First()
                If visit = "Levantamiento de información" Then
                    Using bda As New BdHogaresDataContext
                        Dim aa = From i In bda.Web_Caracterizacionpersonas
                                      Where i.idPersona = hdIdPersona.Value
                                      Select i
                        Dim datossalud As New Web_Caracterizacionpersona
                        datossalud = aa.FirstOrDefault()
                        rbtipoafiliacion.SelectedValue = IIf(IsDBNull(datossalud.tipoafiliacionsalud), 0, datossalud.tipoafiliacionsalud)
                        ddltipoafiliacionotro.SelectedValue = IIf(IsDBNull(datossalud.ddltipoafiliacionotro), 0, datossalud.ddltipoafiliacionotro)
                        txtnombreeps.Text = IIf(IsDBNull(datossalud.nombreeps), "", datossalud.nombreeps)
                        txtnombreips.Text = IIf(IsDBNull(datossalud.nombreips), "", datossalud.nombreips)

                        'SAMUEL CARGAR EL MUNICIPIO
                        If Not (datossalud.Municipioeps Is Nothing) Then
                            Municipio.cargarMunicipio(datossalud.Municipioeps)
                        End If
                        'FIN SAMUEL

                        novalida = True
                        rbtipoafiliacion.Enabled = False
                        ddltipoafiliacionotro.Enabled = False
                        txtnombreeps.Enabled = False
                        txtnombreips.Enabled = False

                        'SAMUEL -- DESACTIVAR EL CONTROL MUNICIPIO
                        Municipio._ddlMun.Enabled = False
                        Municipio._ddlDepartamento.Enabled = False
                        'FIN SAMUEL
                    End Using
                End If
            End Using

            Using bd As New BdHogaresDataContext
                Dim a = From i In bd.Web_ModuloSaludSexualReproductivas
                          Where i.idvisita = hdIdvisita.Value And i.idPersona = hdIdPersona.Value
                          Select i.idPersona
                Try
                    traerDatos(hdIdvisita.Value)
                Catch
                    ' If Edad >= 12 Then     SAMUEL -- CAMBIO A 10 AÑOS
                    If Edad >= 10 Then
                        'identificar los datos de la visita anterior
                        Dim c = (From i In bd.Web_ModuloSaludSexualReproductivas
                                Where i.idPersona = hdIdPersona.Value
                                Select CType(i.idvisita, Integer?)).Max
                        guardar(True)
                        If IsNothing(c) = False Then
                            traerDatos(c)
                            lblinformacion.Text = "SE HA CARGADO LA INFORMACIÓN DE LA VISITA ANTERIOR A MODO DE VERIFICACIÓN, DEBE MODIFICAR LOS DATOS QUE HAN VARIADO Y HACER CLIC EN GUARDAR"
                        End If

                    End If
                End Try
            End Using

        End If



        Using bd As New BdHogaresDataContext
            Dim a = From i In bd.Web_ModuloSaludSexualReproductivas
                      Where i.idvisita = hdIdvisita.Value And i.idPersona = hdIdPersona.Value
                      Select i.idRespuesta
            If a.Count > 0 Then
                iderespuesta = a.First
            End If
        End Using
        listas()
    End Sub
    Sub traeredad()


        Dim fechanacimiento As Date
        Dim fechavisita As Date

        Try
            Using bd As New BdHogaresDataContext
                Dim a = From i In bd.Web_Caracterizacionpersonas
                          Where i.idPersona = hdIdPersona.Value
                          Select i.fechadenacimiento
                fechanacimiento = a.First()
            End Using

            Using db As New BdHogaresDataContext
                Dim a = From i In db.Web_Visitas
                        Where (i.idHogar = hdIdhogar.Value And i.idvisita = hdIdvisita.Value)
                        Select i
                fechavisita = a.FirstOrDefault.FechaDiligenciamiento.ToString
            End Using

        Catch ex As Exception

        End Try

        Dim anios As Integer = DateDiff(DateInterval.Year, fechanacimiento, fechavisita)
        If (fechavisita.Month < fechanacimiento.Month Or (fechavisita.Month = fechanacimiento.Month And fechavisita.Day < fechanacimiento.Day)) Then
            anios -= 1
        End If
        Edad = anios
        If Edad < 10 Then
            Label1.Visible = True
            Button1.Visible = True
            PanelEdicion.Visible = False
            pnlVacuna10a49.Visible = False
            pnlBotones.Visible = False

            'SAMUEL -- HACER VISIBLE EL PANEL DE SALUD MENTAL Y PSICOSOCIAL
            PnlSaludMentalPsicosocial.Visible = False
        End If

        ' If Edad < 12 Then     SAMUEL -- CAMBIO A 10 AÑOS
        If Edad < 10 Then
            PanelEdicion.Visible = False
        End If
        'If Edad > 49 Then
        '    pnlVacuna10a49.Visible = False
        'End If

        'Using bd As New BdHogaresDataContext
        '    Dim a = From i In bd.Web_Caracterizacionpersonas
        '              Where i.idPersona = hdIdPersona.Value
        '              Select i.edadañoscumplidos
        '    Edad = a.First()
        '    If Edad < 10 Then

        '        Label1.Visible = True
        '        Button1.Visible = True
        '        PanelEdicion.Visible = False
        '    End If
        'End Using
    End Sub

    Sub traersexo()
        Using bd As New BdHogaresDataContext
            Dim a = From i In bd.Web_Caracterizacionpersonas
                      Where i.idPersona = hdIdPersona.Value
                      Select i.sexo
            sexo = a.First()

            ' If sexo <> 2 Or Edad < 12 Then     SAMUEL -- CAMBIO A 10 AÑOS
            If sexo <> 2 Or Edad < 10 Then
                RequiredFieldValidator36.Enabled = False
                RequiredFieldValidator38.Enabled = False
                rbEmbarazoActual.Enabled = False
                rbAsisteControlPrenatal.Enabled = False
                rbTomadoCitologia.Enabled = False
                rbReclamoCitologia.Enabled = False
            End If

            ' If Edad < 12 Then     SAMUEL -- CAMBIO A 10 AÑOS
            If Edad < 10 Then
                RequiredFieldValidator40.Enabled = False
                rbPlanificacionFamiliar.Enabled = False
            End If

            ' If Edad < 18 Then     SAMUEL -- CAMBIO A 10 AÑOS
            If Edad < 10 Then
                RequiredFieldValidator41.Enabled = False
                rbMetodoPlanificacion.Enabled = False
            End If

            If sexo <> 1 Or Edad < 40 Then
                RequiredFieldValidator42.Enabled = False
                rbExamenProstata.Enabled = False
            End If

            If Edad < 10 Then
                RequiredFieldValidator43.Enabled = False
                rbtetanos.Enabled = False
            End If

            If sexo <> 2 Then
                rbRubeolaSarampion.Enabled = False
                RequiredFieldValidator193.Enabled = False
            End If

            If (sexo <> 1) And (Edad < 10 Or Edad > 49) Then
                ' SAMUEL COMENTARIO PARA DESHABILITARLO Y COLOCAR EL CONTROL DE SARAMPION Y RUBEOLA
                '   rbFiebreAmarilla.Enabled = False
                '   RequiredFieldValidator44.Enabled = False

                rbRubeolaSarampion.Enabled = False
                '       RequiredFieldValidator193.Enabled = False
            End If

            'SAMUEL -- VALIDAR EDAD PARA ACTIVAR CONTROL DE SERVICIOS AMIGABLES EN JOVENES DE 10 A 17 AÑOS
            If Edad < 10 Or Edad > 17 Then
                RequiredFieldValidator190.Enabled = False
                rbServiciosAmigables.Enabled = False
            End If

        End Using
    End Sub

    Sub llenarCombos()
        Using cnn As New SqlConnection(ConfigurationManager.ConnectionStrings("CNNdb").ConnectionString)
            cnn.Open()
            LlenarItems(rbEmbarazoActual, "sino", cnn)
            LlenarItems(rbAsisteControlPrenatal, "sino", cnn)
            LlenarItems(rbTomadoCitologia, "sino", cnn)
            LlenarItems(rbReclamoCitologia, "sino", cnn)
            LlenarItems(rbPlanificacionFamiliar, "sino", cnn)
            LlenarItems(rbMetodoPlanificacion, "sino", cnn)
            LlenarItems(rbExamenProstata, "sino", cnn)
            LlenarItems(rbtetanos, "sino", cnn)

            'SAMUEL -- SE COMENTO PARA NO LLENAR LOS DATOS DE FIEBRE AMARILLA
            '  LlenarItems(rbFiebreAmarilla, "sino", cnn)

            LlenarItems(rbtipoafiliacion, "TipoAfiliacion", cnn)
            LlenarItems(ddltipoafiliacionotro, "otroafiliacionsalud", cnn)

            'SAMUEL -- LLENAR LOS COMBOS DE SERVICIOS AMIGABLES, SALUD MENTAL Y PSICOSOCIAL Y RUBEOLA SARAMPION
            LlenarItems(rbServiciosAmigables, "sino", cnn)
            LlenarItems(rbSaludMental, "sino", cnn)
            LlenarItems(rbAtencionPsicosocial, "sino", cnn)
            LlenarItems(rbRubeolaSarampion, "sino", cnn)
            cnn.Close()
        End Using
    End Sub

    Sub LlenarItems(ByVal objeto As Object, ByVal pregunta As String, ByRef cnn As SqlConnection)
        If pregunta = "sino" Then : objeto.Items.Add(New ListItem("Sí", 1)) : objeto.Items.Add(New ListItem("No", 2)) : Exit Sub : End If
        Using drDatos As SqlDataReader = Funciones.TraerListas(pregunta, cnn)
            With objeto
                .DataSource = drDatos
                .DataTextField = "nombreopcion"
                .DataValueField = "valoropcion"
                .DataBind()
            End With
        End Using
    End Sub
#Region "cargar Datos"

    Sub traerDatos(idVisita As Integer) 'carga los controles con los datos de la bd
        Using bd As New BdHogaresDataContext
            Dim a = From i In bd.Web_ModuloSaludSexualReproductivas
                      Where i.idvisita = idVisita And i.idPersona = hdIdPersona.Value
                      Select i
            Dim Datos As New Web_ModuloSaludSexualReproductiva
            Datos = a.FirstOrDefault()

            If visit <> "Levantamiento de información" Then
                rbtipoafiliacion.SelectedValue = IIf(IsDBNull(Datos.tipoafiliacionsalud), 0, Datos.tipoafiliacionsalud)
                ddltipoafiliacionotro.SelectedValue = IIf(IsDBNull(Datos.ddltipoafiliacionotro), 0, Datos.ddltipoafiliacionotro)
                txtnombreeps.Text = IIf(IsDBNull(Datos.nombreeps), "", Datos.nombreeps)
                txtnombreips.Text = IIf(IsDBNull(Datos.nombreips), "", Datos.nombreips)

                'SAMUEL CARGAR EL MUNICIPIO
                If Datos.tipoafiliacionsalud <> 0 Then
                    If Not (Datos.Municipioeps Is Nothing) Then
                        Municipio.cargarMunicipio(Datos.Municipioeps)
                    End If
                End If
            End If
            rbEmbarazoActual.SelectedValue = IIf(IsDBNull(Datos.EmbarazoActual), 0, Datos.EmbarazoActual)
            rbAsisteControlPrenatal.SelectedValue = IIf(IsDBNull(Datos.AsisteControlPrenatal), 0, Datos.AsisteControlPrenatal)
            rbTomadoCitologia.SelectedValue = IIf(IsDBNull(Datos.CitologiaMeses), 0, Datos.CitologiaMeses)
            rbReclamoCitologia.SelectedValue = IIf(IsDBNull(Datos.ReclamoResultadoCitologia), 0, Datos.ReclamoResultadoCitologia)
            rbPlanificacionFamiliar.SelectedValue = IIf(IsDBNull(Datos.AsisteConsultaPlanificacionFamiliar), 0, Datos.AsisteConsultaPlanificacionFamiliar)
            rbMetodoPlanificacion.SelectedValue = IIf(IsDBNull(Datos.UsaMetodoPlanificacionFamiliar), 0, Datos.UsaMetodoPlanificacionFamiliar)
            rbExamenProstata.SelectedValue = IIf(IsDBNull(Datos.ExamenProstata), 0, Datos.ExamenProstata)
            rbtetanos.SelectedValue = IIf(IsDBNull(Datos.Tetanos), 0, Datos.Tetanos)

            ' SAMUEL -- SE COMENTA PARA DESHABILITAR FIEBRE AMARILLA
            '   rbFiebreAmarilla.SelectedValue = IIf(IsDBNull(Datos.FiebreAmarilla), 0, Datos.FiebreAmarilla)

            txtObsSaludSexual.Text = IIf(IsDBNull(Datos.Observaciones), "", Datos.Observaciones)
            txtObsVacunacion.Text = IIf(IsDBNull(Datos.ObservacionesGenerales), "", Datos.ObservacionesGenerales)

            'SAMUEL -- CODIGO PARA CARGAR LOS DATOS DE SERVICIOS AMIGABLES, SALUD MENTAL Y PSICOSOCIAL Y RUBEOLA SARAMPION
            rbServiciosAmigables.Text = IIf(IsDBNull(Datos.ServiciosAmigables), 0, Datos.ServiciosAmigables)
            rbSaludMental.Text = IIf(IsDBNull(Datos.AtnSaludMental), 0, Datos.AtnSaludMental)
            rbAtencionPsicosocial.Text = IIf(IsDBNull(Datos.AtnPsicosocial), 0, Datos.AtnPsicosocial)
            rbRubeolaSarampion.Text = IIf(IsDBNull(Datos.RubeolaSarampion), 0, Datos.RubeolaSarampion)

        End Using

    End Sub
#End Region
#Region "Metodos"
    Sub guardar(ByVal primeravez As Boolean) 'Guarda los datos en la bd
        Dim Datos As New Web_ModuloSaludSexualReproductiva

        Datos.tipoafiliacionsalud = IIf(rbtipoafiliacion.SelectedIndex = "-1", 0, rbtipoafiliacion.SelectedIndex + 1)
        Datos.ddltipoafiliacionotro = ddltipoafiliacionotro.SelectedValue
        Datos.nombreeps = IIf(txtnombreeps.Text = Nothing, "", txtnombreeps.Text)
        Datos.nombreips = IIf(txtnombreips.Text = Nothing, "", txtnombreips.Text)
        Datos.EmbarazoActual = IIf(rbEmbarazoActual.SelectedValue = Nothing, 0, rbEmbarazoActual.SelectedValue)
        Datos.AsisteControlPrenatal = IIf(rbAsisteControlPrenatal.SelectedValue = Nothing, 0, rbAsisteControlPrenatal.SelectedValue)
        Datos.CitologiaMeses = IIf(rbTomadoCitologia.SelectedValue = Nothing, 0, rbTomadoCitologia.SelectedValue)
        Datos.ReclamoResultadoCitologia = IIf(rbReclamoCitologia.SelectedValue = Nothing, 0, rbReclamoCitologia.SelectedValue)
        Datos.AsisteConsultaPlanificacionFamiliar = IIf(rbPlanificacionFamiliar.SelectedValue = Nothing, 0, rbPlanificacionFamiliar.SelectedValue)
        Datos.UsaMetodoPlanificacionFamiliar = IIf(rbMetodoPlanificacion.SelectedValue = Nothing, 0, rbMetodoPlanificacion.SelectedValue)
        Datos.ExamenProstata = IIf(rbExamenProstata.SelectedValue = Nothing, 0, rbExamenProstata.SelectedValue)
        Datos.Tetanos = IIf(rbtetanos.SelectedValue = Nothing, 0, rbtetanos.SelectedValue)

        'SAMUEL -- SE COMENTA PARA DESHABILITAR FIEBRE AMARILLA
        '  Datos.FiebreAmarilla = IIf(rbFiebreAmarilla.SelectedValue = Nothing, 0, rbFiebreAmarilla.SelectedValue)

        Datos.Observaciones = IIf(txtObsSaludSexual.Text = Nothing, "", txtObsSaludSexual.Text)
        Datos.ObservacionesGenerales = IIf(txtObsVacunacion.Text = Nothing, "", txtObsVacunacion.Text)
        Datos.idPersona = Request.QueryString.Item("idPersona")
        Datos.idvisita = Request.QueryString.Item("idvisita")


        'SAMUEL GUARDAR EL MUNICIPIO
        If primeravez Then
            Datos.Municipioeps = Municipio.CodMunicipio
        Else
            Datos.Municipioeps = IIf(rbtipoafiliacion.SelectedValue = 3, Nothing, Municipio.CodMunicipio)
        End If
        'SAMUEL

        'SAMUEL -- CODIGO PARA GUARDAR LA INFORAMCION DE SERVICIOS AMIGABLES, SALUD MENTAL Y PSICOSOCIAL Y RUBEOLA SARAMPION
        Datos.ServiciosAmigables = IIf(rbServiciosAmigables.SelectedValue = Nothing, 0, rbServiciosAmigables.SelectedValue)
        Datos.AtnSaludMental = IIf(rbSaludMental.SelectedValue = Nothing, 0, rbSaludMental.SelectedValue)
        Datos.AtnPsicosocial = IIf(rbAtencionPsicosocial.SelectedValue = Nothing, 0, rbAtencionPsicosocial.SelectedValue)
        Datos.RubeolaSarampion = IIf(rbRubeolaSarampion.SelectedValue = Nothing, 0, rbRubeolaSarampion.SelectedValue)

        Try
            Using bd As New BdHogaresDataContext
                bd.Web_ModuloSaludSexualReproductivas.InsertOnSubmit(Datos)
                bd.SubmitChanges()
                bd.registrarLog(Context.User.Identity.Name, 6, Request.CurrentExecutionFilePath)
                iderespuesta = Datos.idRespuesta
            End Using

        Catch ex As Exception
            mensaje = "ERROR"
            Exepcion = ex.Message
        Finally
            If Not IsNothing(mensaje) Then
                Using bd As New bdSeguridadDataContext 'calcula el numero de error que sera asignado al usuario
                    Dim a = (From i In bd.web_Errores Select i.idError).Max
                    NumeroError = a.ToString
                End Using

                Using bd As New BdHogaresDataContext
                    bd.registrarLogError(Context.User.Identity.Name, 6, Request.CurrentExecutionFilePath, Exepcion) 'Guarda en la tabla web_errores la exepción
                End Using
                If Not primeravez = True Then
                    contentmsg.InnerHtml = "<script>mostrarmensaje('Error en el registro de los datos','Ha ocurrido un error guardando los datos, por favor pongase en contacto con el administrador del sistema. <br>EL NÚMERO DE SU ERROR ES:" & NumeroError.ToString + 1 & "' ,'error');</script>"
                End If

            Else
                If Not primeravez = True Then
                    contentmsg.InnerHtml = "<script>mostrarmensaje('Registro de datos exitoso','Los datos fueron guardados correctamente','success');</script>"
                End If
            End If
        End Try
    End Sub
    Sub listas()
        Dim rbl As RadioButtonList
        rbl = CType(rbtipoafiliacion, RadioButtonList) : For Each li As ListItem In rbl.Items : li.Attributes.Add("onclick", "frbtipoafiliacion()") : Next



        rbl = CType(rbEmbarazoActual, RadioButtonList) : For Each li As ListItem In rbl.Items : li.Attributes.Add("onclick", "frbEmbarazoActual()") : Next
        rbl = CType(rbTomadoCitologia, RadioButtonList) : For Each li As ListItem In rbl.Items : li.Attributes.Add("onclick", "frbTomadoCitologia()") : Next
        rbl.Dispose()
        rbl = Nothing

    End Sub
    Sub actualizardatos(ByVal primeravez As Boolean)
        Using bda As New BdHogaresDataContext
            Dim Datos = (From i In bda.Web_ModuloSaludSexualReproductivas
            Where (i.idvisita = hdIdvisita.Value And i.idPersona = hdIdPersona.Value)
                      Select i).Single()
            Datos.tipoafiliacionsalud = IIf(rbtipoafiliacion.SelectedIndex = "-1", 0, rbtipoafiliacion.SelectedIndex + 1)
            Datos.ddltipoafiliacionotro = ddltipoafiliacionotro.SelectedValue
            Datos.nombreeps = txtnombreeps.Text
            Datos.nombreips = txtnombreips.Text
            Datos.EmbarazoActual = IIf(rbEmbarazoActual.SelectedIndex = "-1", 0, rbEmbarazoActual.SelectedIndex + 1)
            Datos.AsisteControlPrenatal = IIf(rbAsisteControlPrenatal.SelectedIndex = "-1", 0, rbAsisteControlPrenatal.SelectedIndex + 1)
            Datos.CitologiaMeses = IIf(rbTomadoCitologia.SelectedIndex = "-1", 0, rbTomadoCitologia.SelectedIndex + 1)
            Datos.ReclamoResultadoCitologia = IIf(rbReclamoCitologia.SelectedIndex = "-1", 0, rbReclamoCitologia.SelectedIndex + 1)
            Datos.AsisteConsultaPlanificacionFamiliar = IIf(rbPlanificacionFamiliar.SelectedIndex = "-1", 0, rbPlanificacionFamiliar.SelectedIndex + 1)
            Datos.UsaMetodoPlanificacionFamiliar = IIf(rbMetodoPlanificacion.SelectedIndex = "-1", 0, rbMetodoPlanificacion.SelectedIndex + 1)
            Datos.ExamenProstata = IIf(rbExamenProstata.SelectedIndex = "-1", 0, rbExamenProstata.SelectedIndex + 1)
            Datos.Tetanos = IIf(rbtetanos.SelectedIndex = "-1", 0, rbtetanos.SelectedIndex + 1)

            'SAMUEL -- SE COMENTO PARA DESHABILITAR FIEBRE AMARILLA
            '  Datos.FiebreAmarilla = IIf(rbFiebreAmarilla.SelectedIndex = "-1", 0, rbFiebreAmarilla.SelectedIndex + 1)

            Datos.Observaciones = txtObsSaludSexual.Text
            Datos.ObservacionesGenerales = txtObsVacunacion.Text
            Datos.FechaRegistro = Now()

            'SAMUEL GUARDAR EL MUNICIPIO
            Datos.Municipioeps = IIf(rbtipoafiliacion.SelectedIndex = 3, Nothing, Municipio.CodMunicipio)
            'SAMUEL

            'SAMUEL -- CODIGO PARA GUARDAR LA INFORAMCION DE SERVICIOS AMIGABLES, SALUD MENTAL Y PSICOSOCIAL Y RUBEOLA Y SARAMPION
            Datos.ServiciosAmigables = IIf(rbServiciosAmigables.SelectedIndex = "-1", 0, rbServiciosAmigables.SelectedIndex + 1)
            Datos.AtnSaludMental = IIf(rbSaludMental.SelectedIndex = "-1", 0, rbSaludMental.SelectedIndex + 1)
            Datos.AtnPsicosocial = IIf(rbAtencionPsicosocial.SelectedIndex = "-1", 0, rbAtencionPsicosocial.SelectedIndex + 1)
            Datos.RubeolaSarampion = IIf(rbRubeolaSarampion.SelectedIndex = "-1", 0, rbRubeolaSarampion.SelectedIndex + 1)

            Try
                Using bd As New BdHogaresDataContext
                    bda.SubmitChanges()
                    bd.registrarLog(Context.User.Identity.Name, 6, Request.CurrentExecutionFilePath)
                End Using

            Catch ex As Exception
                mensaje = "ERROR"
                Exepcion = ex.Message
            Finally
                If Not IsNothing(mensaje) Then
                    Using bd As New bdSeguridadDataContext 'calcula el numero de error que sera asignado al usuario
                        Dim a = (From i In bd.web_Errores Select i.idError).Max
                        NumeroError = a.ToString
                    End Using

                    Using bd As New BdHogaresDataContext
                        bd.registrarLogError(Context.User.Identity.Name, 6, Request.CurrentExecutionFilePath, Exepcion) 'Guarda en la tabla web_errores la exepción
                    End Using
                    If Not primeravez = True Then
                        contentmsg.InnerHtml = "<script>mostrarmensaje('Error en el registro de los datos','Ha ocurrido un error guardando los datos, por favor pongase en contacto con el administrador del sistema. <br>EL NÚMERO DE SU ERROR ES:" & NumeroError.ToString + 1 & "' ,'error');</script>"
                    End If

                Else
                    If Not primeravez = True Then
                        Response.Write("<script>alert('Los datos se han guardado de manera exitosa');</script>")
                        Response.Write("<script>var pagina = 'PersonasConsulta.aspx?idPersona=" & hdIdPersona.Value & "&idhogar=" & hdIdhogar.Value & "';window.location = pagina;</script>")


                        'contentmsg.InnerHtml = "<script>mostrarmensaje('Registro de datos exitoso','Los datos fueron guardados correctamente<br> <br><br><input id=\'Button1\' type=\'button\' value=\'Regresar\' onclick=\'redireccionar(); />','success');</script>"
                    End If
                End If
            End Try


        End Using


    End Sub
#End Region
#Region "Enventos controles"


    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Response.Redirect("PersonasConsulta.aspx?idPersona=" & hdIdPersona.Value & "&idhogar=" & hdIdhogar.Value)
    End Sub

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Response.Redirect("PersonasConsulta.aspx?idPersona=" & hdIdPersona.Value & "&idhogar=" & hdIdhogar.Value)
    End Sub


    Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        If Page.IsValid = False Then
            Response.Write("<script>alert('Datos incompletos.')</script>")
            Exit Sub
        Else
            actualizardatos(False)
        End If
    End Sub


    Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate

        Dim mensaje As New StringBuilder
        If rbtipoafiliacion.SelectedValue = "4" And ddltipoafiliacionotro.SelectedValue = "0" Then
            mensaje.AppendLine("</br>Debe responder cual otro tipo de afiliación tiene")
        End If

        If (rbtipoafiliacion.SelectedValue = "1" Or rbtipoafiliacion.SelectedValue = "2") And (txtnombreeps.Text = "") Then
            mensaje.AppendLine("</br>Debe responder que EPS tiene")
        End If

        If (rbtipoafiliacion.SelectedValue = "1" Or rbtipoafiliacion.SelectedValue = "2") And (txtnombreips.Text = "") Then
            mensaje.AppendLine("</br>Debe responder que IPS tiene")
        End If

        If rbEmbarazoActual.SelectedValue = "1" And rbAsisteControlPrenatal.SelectedIndex = "-1" Then
            mensaje.AppendLine("</br>Si esta embarazada debe responder si asiste a control prenatal")
        End If


        If rbTomadoCitologia.SelectedValue = "1" And rbReclamoCitologia.SelectedIndex = "-1" Then
            mensaje.AppendLine("</br>Si tomo citología debe responder si reclamo resultados")
        End If

        If mensaje.Length > 0 Then
            args.IsValid = False
            Me.CustomValidator1.ErrorMessage = mensaje.ToString()
            Me.CustomValidator1.Enabled = True
        End If
    End Sub

#End Region

End Class




